FROM adoptopenjdk/openjdk9
LABEL manitainer="zhufeifei<t0m999@dingtalk.com>"
LABEL description="This is hello world program."

# ARG参数构建过程中有效，ENV 容器运行过程中有效
ARG APP_HOME=/app/
ARG APP_NAME=jdk9gradle
ARG APP_BOOT=${APP_NAME}-boot

# 指定本地目录可以被容器使用，一般用于持久化数据存储， 还可以用于多容器共享
VOLUME /tmp

ADD ${APP_BOOT}.tar $APP_HOME

RUN mkdir -p ${APP_HOME}log/ && mv ${APP_HOME}${APP_BOOT}/bin/${APP_NAME} ${APP_HOME}${APP_BOOT}/bin/start

# ENV 容器内运行中有效, https://docs.docker.com/engine/reference/builder/
# 启动脚本中使用该参数
ENV BOOT_ARG  -Djava.security.egd=file:/dev/./urandom -Dlogging.path=/app/log/

# 仅提示作用，表示会开放此端口，最后通过docker run -p 80:8080 暴漏端口
EXPOSE 8080

# 切换工作目录，与cd 类似, 后面ENTRYPOINT CMD RUN默认目录
WORKDIR ${APP_HOME}${APP_BOOT}/bin

# 启动
ENTRYPOINT ./start